Maxine Virtual Machine
   HOME

TheInfoList



OR:

The Maxine virtual machine is an open source
virtual machine In computing, a virtual machine (VM) is the virtualization/ emulation of a computer system. Virtual machines are based on computer architectures and provide functionality of a physical computer. Their implementations may involve specialized h ...
that is developed at the University of Manchester. It was formerly developed by Sun Microsystems Laboratories, since renamed Oracle Labs. The emphasis in Maxine's
software architecture Software architecture is the fundamental structure of a software system and the discipline of creating such structures and systems. Each structure comprises software elements, relations among them, and properties of both elements and relations. ...
is on modular design and code reuse for flexibility, configurability, and productivity for industrial and academic virtual machine researchers. It is one of a growing number of Java virtual machines written entirely in Java in a meta-circular style. Examples include
Squawk Squawk may refer to: * Bird vocalization * Squawk (sound), a sound produced by patients with various lung disorders * ''Squawk'' (album), hard rock band Budgie's second album, released in 1972 * Squawk code (more formally transponder code), a f ...
and
Jikes RVM Jikes is an open-source Java compiler written in C++. It is no longer being updated. The original version was developed by David L. "Dave" Shields and Philippe Charles at IBM but was quickly transformed into an open-source project contribute ...
.


Architecture

The Maxine VM is characterized internally by aggressive use of advanced language features in Java 1.5 and 1.6, by modular subsystems coordinated through Java interfaces, by the absence of an interpreter, and by a tightly coupled debugger and visualization
tool A tool is an object that can extend an individual's ability to modify features of the surrounding environment or help them accomplish a particular task. Although many animals use simple tools, only human beings, whose use of stone tools dates ba ...
for VM development.


Compatibility

Maxine is
plug compatible Plug compatible refers to " hardware that is designed to perform exactly like another vendor's product." The term PCM was originally applied to manufacturers who made replacements for IBM peripherals. Later this term was used to refer to IBM-co ...
with an unmodified
Java Development Kit The Java Development Kit (JDK) is a distribution of Java Technology by Oracle Corporation. It implements the Java Language Specification (JLS) and the Java Virtual Machine Specification (JVMS) and provides the Standard Edition (SE) of the Java ...
(JDK). Maxine can be developed, built, and run in standard Java
integrated development environment An integrated development environment (IDE) is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of at least a source code editor, build automation tools ...
s (IDEs), including
NetBeans NetBeans is an integrated development environment (IDE) for Java. NetBeans allows applications to be developed from a set of modular software components called ''modules''. NetBeans runs on Windows, macOS, Linux and Solaris. In addition to Java ...
, Eclipse, and
IntelliJ IDEA IntelliJ IDEA is an integrated development environment (IDE) written in Java for developing computer software written in Java, Kotlin, Groovy, and other JVM-based languages. It is developed by JetBrains (formerly known as IntelliJ) and is av ...
.


Systems programming in Java

A secondary goal of the project is to develop methods and tools for "systems programming in Java".
Compiler In computing, a compiler is a computer program that translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily used for programs tha ...
extensions, configured in VM
source code In computing, source code, or simply code, is any collection of code, with or without comments, written using a human-readable programming language, usually as plain text. The source code of a program is specially designed to facilitate the w ...
using
Java annotation In the Java computer programming language, an annotation is a form of syntactic metadata that can be added to Java source code. Classes, methods, variables, parameters and Java packages may be annotated. Like Javadoc tags, Java annotations can b ...
s, allow use, with no performance penalty, of low-level operations otherwise disallowed in Java. These extensions provided the foundation for the Graal compiler.


The Maxine Inspector

Specialized debugging support for the Maxine VM is provided by the Maxine Inspector: a companion tool that acts as a combined object, class, and method browser, and as a machine- and bytecode-level debugger. The Inspector runs out-of-process, needs no active VM support, and leverages code shared with the VM for specialized developer services that exploit detailed knowledge of memory layout and VM design. Notable services include: * multiple mode views of code (source, bytecode, disassembled machine code) with multi-mode breakpoints and stepping; * thread, stack, register, and thread local variable inspection; * flexible low-level memory visualization with dynamic interpretation and linking of memory values, e.g. as code locations, object references; * dynamic visualization of object fields and metadata; * boot image configuration details; and * specialized algorithm-specific support for debugging during GC.


History

Maxine was created by Bernd Mathiske at Sun Labs in early 2005. He led its development among a growing team until late 2008 when he left Sun Microsystems and handed the project over to Doug Simon who had been the first engineer to join it. Doug Simon continued in this role throughout the acquisition of Sun by Oracle Corporation. The static (heap inspection) version of the Maxine Inspector was created by Bernd Mathiske in 2006. Michael Van De Vanter assumed development of the Inspector in 2007, adding dynamic support as the VM became executable and continued to evolve throughout the acquisition of Sun by Oracle Corporation. Oracle continued development of Maxine until the release of Maxine 2.0. The University of Manchester is developing Maxine as of release 2.1.


See also

*
List of Java virtual machines This article provides non-exhaustive lists of Java SE Java virtual machines (JVMs). It does not include every Java ME vendor. Note that Java EE runs on the standard Java SE JVM but that some vendors specialize in providing a modified JVM optimized ...
*
Squawk virtual machine Squawk is a Java (software platform), Java Java ME, micro edition Java virtual machine, virtual machine for embedded system and small devices. Most virtual machines for the Java platform are written in low level native languages such as C (program ...
*
Jikes RVM Jikes is an open-source Java compiler written in C++. It is no longer being updated. The original version was developed by David L. "Dave" Shields and Philippe Charles at IBM but was quickly transformed into an open-source project contribute ...


References


Notes


Bibliography

* *


External links

*
Maxine VM project
at
Read the Docs Read the Docs is an open-sourced free software documentation hosting platform. It generates documentation written with the Sphinx documentation generator. The site was created in 2010 by Eric Holscher, Bobby Grace, and Charles Leifer. On March 9, ...
{{Oracle FOSS Java virtual machine Oracle software Free compilers and interpreters